package com.yilin.tms.gps.service;

import com.yilin.tms.core.entity.gps.Location;
import com.yilin.tms.core.entity.gps.hyb.*;
import com.yilin.tms.core.entity.user.hatch.HatchHyb;

import java.util.List;

/**
 *
 */
public interface IGpsHybService {
    HatchHyb getHatchGaode(String platId);

    HybReturn<Object> bindVehicleDevice(String platId, String deviceId, String vehicleNumber);

    HybReturn<Object> unBindVehicleDevice(String platId, String deviceId, String vehicleNumber);

    HybReturn<List<FenceResult>> storeDevicePolygon(String platId, String transportNo, String vehicleNumber, String driverName, List<FenceInfoDTO> fenceInfoList);

    HybReturn<FenceResult> deleteStoreDevicePolygon(String platId, String transportNo);

    HybReturn<ShippingFence> getDevicePolygon(String platId, String transportNo);

    HybReturn<Object> pushDevicePolygon(ShippingFence shippingFence);

    HybReturn<List<DeviceTrack>> getTrackByShipping(String platId, String transportNo);

    HybReturn<List<DeviceTrack>> getTrackByDeviceId(String platId, String deviceId, Long startTime, Long endTime);

    List<HybReturn<List<DeviceTrack>>> getTracksByDeviceId(String platId, String[] deviceIds, Long startTime, Long endTime);

    HybReturn<EquipmentInfo> getTrackDeviceInfo(String platId, String deviceId);

    List<HybReturn<EquipmentInfo>> getTrackDeviceInfos(String platId, String[] deviceIds);

    List<Location> hybTrack2Locations(List<DeviceTrack> deviceTrackList);
}
